#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
//int main()
//{
//	int* p = NULL;
//	p = (int*)malloc(40);//用malloc函数开辟40个字节的内容
//	int i = 0;
//	if (NULL != p)//判断ptr指针是否为空
//	{
//		int i = 0;
//		for (i = 0; i < 10; i++)//循环写入10个整形
//		{
//			*(p + i) = i;
//		}
//	}
//	for (i = 0; i < 10; i++)//循环打印10个整形
//	{
//		printf("%d ", *(p + i));
//
//	}
//	free(p);//释放动态开辟的p
//	p = NULL;//p置为空
//
//
//	return 0;
//}
//int main()
//{
//	int* p = (int*)calloc(10, sizeof(int));
//	int i = 0;
//	if (NULL != p)
//	{
//
//		for (i = 0; i < 10; i++)//循环打印初始的内容
//		{
//			printf("%d ", *(p + i));
//		}
//	}
//	for (i = 0; i < 10; i++)//循环写入10个整形
//	{
//		*(p + i) = i;
//	}
//	printf("\n");
//	for (i = 0; i < 10; i++)//循环打印写入后的内容
//	{
//		printf("%d ", *(p + i));
//	}
//	free(p);
//	p = NULL;
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int* p = (int*)malloc(40);//malloc开辟40个字节
//	int i = 0;
//	if (p != NULL)
//	{
//		for (i = 0; i < 10; i++)//循环写入10个整形
//		{
//			*(p + i) = i;
//		}
//	}
//	for (i = 0; i < 10; i++)//循环打印出10个整形
//	{
//		printf("%d ", *(p + i));
//	}
//	printf("\n");
//	//扩展容量成功
//	p = (int*)realloc(p, 100);//增加后的总大小为60字节
//	{
//		perror("realloc");
//	}
//
//	free(p);
//	p = NULL;
//	return 0;
//}
//void GetMemory(char** p)
//{
//	*p = (char*)malloc(100);
//}
//
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(&str);
//	strcpy(str, "hello world");
//	printf(str);
//	//释放
//	free(str);
//	str = NULL;
//}
//
//int main()
//{
//	Test();
//	return 0;
//char* GetMemory(void)
//{
//	char* p = malloc(40);
//	p = "hello world";
//	return p;
//}
//void Test(void)
//{
//	char* str = NULL;
//	str = GetMemory();
//	printf(str);
//}
//void GetMemory(char** p, int num)
//{
//	*p = (char*)malloc(num);
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(&str, 100);
//	strcpy(str, "hello");
//	printf(str);
//}
//char* GetMemory(void)
//{
//	char p[] = "hello world";
//	return p;
//}
//void Test(void)
//{
//	char* str = NULL;
//	str = GetMemory();
//	printf(str);
//}
//void GetMemory(char* p)
//{
//	p = (char*)malloc(100);
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(str);
//	strcpy(str, "hello world");
//	printf(str);
//}
void Test(void)
{
	char* str = (char*)malloc(100);
	strcpy(str, "hello");
	free(str);
	if (str != NULL)
	{
		strcpy(str, "world");
		printf(str);
	}
}
int main()
{
	Test();
	return 0;
}